package com.skiving.cloud.admin.service;

import com.mybatisflex.core.paginate.Page;
import com.skiving.cloud.admin.entity.SysMenu;
import com.skiving.cloud.common.utils.PageParameter;
import com.mybatisflex.core.service.IService;
import com.skiving.cloud.admin.entity.SysTenant;

import java.util.List;
import java.util.Map;

/**
 * 租户表 服务层。
 *
 * @author skivingcloud
 * @since 2025-03-08
 */
public interface SysTenantService extends IService<SysTenant> {
    /**
     * 分页查询租户表
     *
     * @param parameter 查询参数
     * @return 分页查询结果
     */
    Page<SysTenant> queryByPage(PageParameter<SysTenant> parameter);

    /**
     * 查询租户有权限的资源树
     * @param tenantId 租户ID
     * @return 树形菜单
     */
    List<SysMenu> getTenantMenuList(String tenantId);

    /**
     * 查询租户信息{key:'', value:''}
     * @return 租户信息{key:'', value:''}
     */
    List<Map<String, Object>> getTenantSelect();

    /**
     * 批量删除租户信息
     * @param ids 租户id数字
     */
    void deleteBatch(List<String> ids);
}
